type Fill<
  T extends unknown[],
  N,
  Start extends number = 0,
  End extends number = T['length'],
> = T extends [infer P, ...infer R]
  ? Start extends 0
    ? End extends 0
      ? [P, ...Fill<R, N, Start, End>]
      : [N, ...Fill<R, N, Start, Minus<BuildArr<End>, BuildArr<1>>>]
    : [P, ...Fill<R, N, Minus<BuildArr<Start>, BuildArr<1>>, Minus<BuildArr<End>, BuildArr<1>>>]
  : []